package com.whfc.ms.api.fse.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.entity.dto.warn.AppWarnRuleDTO;
import com.whfc.entity.param.warn.AppWarnHandleParam;
import com.whfc.fse.dto.FseCraneWarnCountDTO;
import com.whfc.fse.dto.FseWarnDetailDTO;
import com.whfc.fse.dto.FseWarnRecordDTO;
import com.whfc.fse.param.FseWarnSetUserParam;
import com.whfc.fse.param.WarnBatchDelParam;
import com.whfc.fse.param.WarnBatchHandleParam;
import com.whfc.fuum.entity.SysUser;

import java.util.Date;

/**
 * @DESCRIPTION 特种设备报警设置
 * @AUTHOR GuoDong_Sun
 * @DATE 2020/4/13
 */
public interface MsFseWarnService {

    /**
     * 特种设备的报警规则列表
     *
     * @param deptId
     * @param type
     * @param
     * @return
     */

    ListData<AppWarnRuleDTO> ruleList(Integer deptId, Integer type);


    /**
     * 设置特种设备报警接收人及接收方式
     *
     * @param request
     */
    void userAdd(FseWarnSetUserParam request);


    /**
     * 特种设备报警记录
     * @param deptId
     * @param pageNum
     * @param pageSize
     * @param state
     * @param ruleType
     * @param type
     * @param startTime
     * @param endTime
     * @return
     */
    PageData<FseWarnRecordDTO> recordList(Integer deptId, Integer pageNum, Integer pageSize, Integer state,
                                          Integer ruleType, Integer type, Date startTime, Date endTime);

    /**
     * 特种设备的报警详情
     *
     * @param id
     * @return
     */
    FseWarnDetailDTO recordDetail(Integer id);

    /**
     * 处理特种设备报警
     *
     * @param request
     */
    void recordHandle(SysUser user, AppWarnHandleParam request);

    /**
     * 批量处理特种设备报警
     *
     * @param param
     */
    void batchHandle(WarnBatchHandleParam param);

    /**
     * 批量删除特种设备报警
     *
     * @param param
     */
    void del(WarnBatchDelParam param);

    /**
     * 统计当日塔机报警数量
     *
     * @param craneId 塔机ID
     * @return 报警数量
     */
    FseCraneWarnCountDTO countCraneWarn(Integer craneId);
}
